package config

import (
	"errors"
	"fmt"
	"github.com/spf13/viper"
)

var UserConfig *viper.Viper

func InitConfig() {
	// 设置配置文件路径
	viper.SetConfigFile("../config/config.yaml")

	// 读取配置
	if err := viper.ReadInConfig(); err != nil {
		panic(err) // 初始化失败时 panic（或根据需求处理错误）
	}

	viper.WatchConfig()
	//设置用户配置文件
	userConof := viper.New()
	userConof.SetConfigName("user.conf")
	userConof.SetConfigType("yaml")
	userConof.AddConfigPath(".")

	// 尝试读取配置文件
	if err := userConof.ReadInConfig(); err != nil {
		var configFileNotFoundError viper.ConfigFileNotFoundError
		if errors.As(err, &configFileNotFoundError) {
			// 写入配置文件
			if err := userConof.SafeWriteConfigAs("user.conf.yaml"); err != nil {
				fmt.Println("创建配置文件失败:", err)
				return
			}
		}
	}
	UserConfig = userConof
}
